
#include <stdint.h>

// #pragma pack(1)
// struct testData {
//      int32_t b;
//      int32_t c;
//      int32_t *e;
//      double d;
// };

// struct testBox {
//     struct testData data;
// };

// struct testBook {
//     struct testData data;
// };

// #pragma pack()

#pragma pack(1)
namespace testNamespace
{

enum TestEnum : int
{
  enum0 = 0,
  enum1 = 1,
  enum2 = 2,
  enum3 = 3
};

struct TestMessage
{
  double doubleField = 0.0;
  int32_t int32Field = 0;
  int64_t int64Field = 0;
  uint32_t uint32Field = 0;
  bool boolField = false;
  char *stringField = NULL;
  TestEnum testEnumField = enum0;
  double *repeatedDoubleField = NULL;
  uint64_t repeatedStringLengthField = 0;
};

}

#pragma pack()
